<?php

Class Mprestamo extends CI_Model
{

    /**
     * Carga todos los datos de las possibles finalidades para un prestamo, y los devuelve en forma de array de objetos.
     *
     * @return mixed
     */
    function cargarFinalidad()
    {
        $this->db->select('id, tag');
        $this->db->from('finalidadPrestamo');
        return $this->db->get()->result();
    }

    /**
     * Recibe los datos para generar una solicitud de prestamo, inserta los datos en la BBDD, y luego devuelve el id de esa solicitud como array de objetos
     *
     * @param array $data
     * @return mixed
     */
    function generarSolicitud($data)
    {
        $sql = "INSERT INTO solicitud (idTipoSolicitud, idCuenta, idCliente) VALUES (2, " . $data['idCuenta'] . ", " . $data['idCliente'] . ")";
        $this->db->query($sql);
        $this->db->select('max(id) as id', false);
        $this->db->from('solicitud');
        return $this->db->get()->result();
    }

    /**
     * Recibe todos los datos para generar un prestamo, e inserta los datos en la BBDD
     *
     * @param array $data
     */
    function generarPrestamo($data)
    {
        if ($data['txtPlazo'] != '') {
            if ($data['cboTipoPlazo'] == 'anos') {
                $data['txtPlazo'] = $data['txtPlazo'] * 12;
            }
            $sql = 'INSERT INTO prestamo (idFinalidad, idCliente, idCuenta, idSolicitud, importe, plazo, activo)
                VALUES (' . $data['cboFinalidad'] . ', ' . $data['idCliente'] . ', ' . $data['radioCuenta'] . ', ' . $data['idSolicitud'] . ', ' . $data['txtImporte'] . ', ' . $data['txtPlazo'] . ', 0)';
        } else {
            $sql = 'INSERT INTO prestamo (idFinalidad, idCliente, idCuenta, idSolicitud, importe, cuota, activo)
                VALUES (' . $data['cboFinalidad'] . ', ' . $data['idCliente'] . ', ' . $data['radioCuenta'] . ', ' . $data['idSolicitud'] . ',' . $data['txtImporte'] . ', ' . $data['txtCuota'] . ', 0)';
        }
        $this->db->query($sql);
    }

    /**
     * Obtiene las cuentas de ese cliente.
     *
     * @param $idCliente
     * @return mixed
     */
    function obtenerCuentas($idCliente)
    {
        $this->db->select('cuenta.id, cuenta.codigoEntidad, cuenta.codigoOficina, cuenta.codigoControl, cuenta.codigoCuenta');
        $this->db->from('cuenta, cuentacliente ');
        $this->db->where('cuenta.id = cuentacliente.idCuenta');
        $this->db->where('cuentacliente.idCliente = ' . $idCliente);
        return $this->db->get()->result();
    }

    /**
     * Obtiene los préstamos de un cliente y de una cuenta determinada.
     * @param $idCliente
     * @param $idCuenta
     * @return mixed
     */
    function getPrestamos($idCliente, $idCuenta)
    {
        $this->db->select('prestamo.importe, prestamo.cuota, prestamo.plazo, estadosolicitud.tag');
        $this->db->from('prestamo, solicitud, estadosolicitud');
        $this->db->where('prestamo.idCliente = ' . $idCliente);
        $this->db->where('prestamo.idCuenta = ' . $idCuenta);
        $this->db->where('prestamo.idSolicitud = solicitud.id');
        $this->db->where('prestamo.activo = 1');
        $this->db->where('solicitud.idEstadoSolicitud = estadosolicitud.id');
        return $this->db->get()->result();
    }
}

?>